草庐IT

TypeScript 运算符

全部标签

使用花括号而不是赋值运算符的作用域变量的 C++ 声明和实例化

我正在观看BjarneStroustrup的C++11风格主题演讲(link)(00:35:30),但我无法理解以下内容(从幻灯片复制的代码):voidf(intn,intx){Gadgetg{n};//...if(x我尝试使用结构和对象编译此代码,但在这两种情况下,编译器都告诉我它需要一个“;”在Gadgetg声明的末尾,不会编译。因此我的问题是:我假设g正在被实例化是否正确?Gadget必须是什么类型的对象才能编译此代码?这一行的概念是什么:Gadgetg{n};?即声明后的大括号是什么?(可能太宽泛了,但是)为什么编译器不能将大括号识别为有效语法? 最

c++ - 将流运算符 >> 评估为 bool 值

以下代码在VisualStudio2008中编译但在VisualStudio2013及更高版本中失败。std::stringstr("foo");std::stringstreamss(str);floatf=0;if((ss>>f)==false)std::cout错误信息是errorC2678:binary'==':nooperatorfoundwhichtakesaleft-handoperandoftype'std::basic_istream>'(orthereisnoacceptableconversion)并通过如下更改成功修复:if(!(ss>>f))std::cout

c++ - 重载运算符 '[]' 的使用与模板转换运算符不明确

以下代码在gcc7.3.0中编译良好,但在clang6.0.0中无法编译。#includestructX{X():x(10){}intoperator[](std::stringstr){returnx+str[0];}templateoperatorT(){returnx;}//(1)failsonlyinclang//operatorint(){returnx;}//(2)failsbothingccandclangprivate:intx;};intmain(){Xx;inty=20;intz=int(x);returnx["abc"];}我使用命令clang++1.cpp-st

c++ - 重载全局类型转换运算符

为了测试和显示我的库中某些函数的结果,我创建了一组方便的函数。我有一个execute看起来像的功能:templatestd::stringexecute(conststd::string&func_name,R(*func_ptr)(constI&),constI&func_input);它调用该函数,并在我可以发送到std::cout的格式化字符串中显示结果和参数。.问题是我的一些函数不返回convertible-to-string结果。我以为我可以简单地重载全局::operatorstd::string像这样:templateoperatorstd::string(conststd

c++ - std::vector 是否将其值类型的赋值运算符用于 push_back 元素?

如果是,为什么?为什么不使用值类型的拷贝构造函数?我收到以下错误:/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc:Inmemberfunction`ClassWithoutAss&ClassWithoutAss::operator=(constClassWithoutAss&)':/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc:238:instantiatedfrom`voidstd::vector::_M_insert_aux(__g

c++ - C++ 11中的运算符模数变化?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++operator%guarantees在C++98/03中5.6-4Thebinary/operatoryieldsthequotient,andthebinary%operatoryieldstheremainderfromthedivisionofthefirstexpressionbythesecond.Ifthesecondoperandof/or%iszerothebehaviorisundefined;otherwise(a/b)*b+a%bisequaltoa.Ifbothoperands

c++ - 比较位集的最快方法(<位集上的运算符)?

实现的最优化方法是什么?std::bitset的运算符对应于无符号整数表示的比较(它应该适用于morethan64bits的位集)?一个简单的实现是:templatebooloperator&x,conststd::bitset&y){for(inti=N-1;i>=0;i--){if(x[i]&&!y[i])returnfalse;if(!x[i]&&y[i])returntrue;}returnfalse;}当我说“最优化的方式”时,我正在寻找使用按位运算和元编程技巧(以及类似的东西)的实现。编辑:我认为我找到了诀窍:用于编译时递归和右位移位的模板元编程,以便将位集与几个无符号长整

c++ - C/C++ 中的运算符与函数

最近有人问我C++标准运算符(例如new、delete、sizeof)和函数(例如tan、free、malloc)之间的区别。“标准”是指编译器套件默认提供的那些,不是用户定义的。以下是我给出的答案,但似乎都不令人满意。(1)运算符不需要包含任何header即可使用它:例如您可以在不包含任何header的情况下调用new。但是,一个函数(比如free())确实需要强制包含header。(2)运算符在标准头文件的某处定义为这样(即作为类运算符)。函数不是。您能否评论这些答案并让我更好地了解其中的区别? 最佳答案 运算符是具有固定语法的

c++ - 如何在 Visual Studio 中查找特定类的重载运算符的所有引用?

如果我有一个包含重载==运算符函数的类,我如何找出在整个代码中在哪里使用了这个重载运算符?(除了在重载的==方法中放置一个断点并查看代码是否命中它。)我尝试转到VisualStudio中的类View,右键单击该方法,然后选择“查找所有引用”,但它声称当我知道至少有一个我添加时,没有引用。 最佳答案 暂时将运算符设为私有(private)且未实现。这将在您编译时捕获用途。 关于c++-如何在VisualStudio中查找特定类的重载运算符的所有引用?,我们在StackOverflow上找到

XDOJ例题及答案第七更 计算整数各位数字之和简单程序奖金计算角谷定理阶乘运算阶乘之和阶梯电价计费阶梯电价计算 金字塔打印矩阵矩阵对角线求和矩阵求和累加和校验利率计算 利润计算螺旋填数马鞍点

目录计算整数各位数字之和简单程序奖金计算角谷定理阶乘运算阶乘之和阶梯电价计费阶梯电价计算金字塔打印矩阵矩阵对角线求和矩阵求和累加和校验利率计算利润计算螺旋填数马鞍点计算整数各位数字之和#includeintmain(){ inta,b,c; scanf("%d",&a); b=0; do{ c=a; a=a/10; b=c-a*10+b; }while(a>0); printf("%d",b); return0;}简单程序#includeintmain(){ printf("Cprogramminglanguageisuseful!\nIlikeitverymuch."); }奖金计